package com.neusoft.crm.controller;

import com.neusoft.crm.po.DataArea;
import com.neusoft.crm.po.DataClientLevel;
import com.neusoft.crm.po.DataServerType;
import com.neusoft.crm.service.IBasicDataService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * 基础数据管理类
 *
 * @author lanan
 */
@RestController
public class BasicDataServiceController {
    @Autowired
    private IBasicDataService basicDataService;

    /**
     * 显示地区列表
     *
     * @param dataArea 请求体：地区信息
     * @return 地区信息列表
     */
    @RequestMapping("/selectRegionList")
    public List<DataArea> selectRegionList(@RequestBody DataArea dataArea) {
        return basicDataService.selectRegionList(dataArea);
    }

    /**
     * 新增地区信息
     *
     * @param dataArea 请求体：地区信息
     * @return 受影响的行数
     */
    @RequestMapping("/addRegionInfo")
    public int addRegionInfo(@RequestBody DataArea dataArea) {
        return basicDataService.addRegionInfo(dataArea);
    }

    /**
     * 编辑地区信息
     *
     * @param dataArea 请求体：地区信息
     * @return 受影响的行数
     */
    @RequestMapping("/updateRegionInfo")
    public int updateRegionInfo(@RequestBody DataArea dataArea) {
        return basicDataService.updateRegionInfo(dataArea);
    }

    /**
     * 删除地区信息
     *
     * @param dataArea 请求体：地区信息
     * @return 受影响的行数
     */
    @RequestMapping("/deleteRegionInfo")
    public int deleteRegionInfo(@RequestBody DataArea dataArea) {
        return basicDataService.deleteRegionInfo(dataArea);
    }

    /**
     * 显示客户等级列表
     *
     * @param dataClientLevel 请求体：客户等级
     * @return 客户等级列表
     */
    @RequestMapping("/selectCustomerLevelList")
    public List<DataClientLevel> selectCustomerLevelList(@RequestBody DataClientLevel dataClientLevel) {
        return basicDataService.selectCustomerLevelList(dataClientLevel);
    }

    /**
     * 增加客户等级
     *
     * @param dataClientLevel 请求体：客户等级
     * @return 受影响的行数
     */
    @RequestMapping("/addCustomerLevel")
    public int addCustomerLevel(@RequestBody DataClientLevel dataClientLevel) {
        return basicDataService.addCustomerLevel(dataClientLevel);
    }

    /**
     * 编辑客户等级
     *
     * @param dataClientLevel 请求体：客户等级
     * @return 受影响的行数
     */
    @RequestMapping("/updateCustomerLevel")
    public int updateCustomerLevel(@RequestBody DataClientLevel dataClientLevel) {
        return basicDataService.updateCustomerLevel(dataClientLevel);
    }

    /**
     * 删除客户等级
     *
     * @param dataClientLevel 请求体：客户等级
     * @return 受影响的行数
     */
    @RequestMapping("/deleteCustomerLevel")
    public int deleteCustomerLevel(@RequestBody DataClientLevel dataClientLevel) {
        return basicDataService.deleteCustomerLevel(dataClientLevel);
    }

    /**
     * 显示服务类型列表
     *
     * @param dataServerType 请求体：服务类型
     * @return 服务类型列表
     */
    @RequestMapping("/selectServiceTypeList")
    public List<DataServerType> selectServiceTypeList(@RequestBody DataServerType dataServerType) {
        return basicDataService.selectServiceTypeList(dataServerType);
    }

    /**
     * 增加服务类型
     *
     * @param dataServerType 请求体：服务类型
     * @return 受影响的行数
     */
    @RequestMapping("/addServiceType")
    public int addServiceType(@RequestBody DataServerType dataServerType) {
        return basicDataService.addServiceType(dataServerType);
    }

    /**
     * 编辑服务类型
     *
     * @param dataServerType 请求体：服务类型
     * @return 受影响的行数
     */
    @RequestMapping("/updateServiceType")
    public int updateServiceType(@RequestBody DataServerType dataServerType) {
        return basicDataService.updateServiceType(dataServerType);
    }

    /**
     * 删除服务类型
     *
     * @param dataServerType 请求体：服务类型
     * @return 受影响的行数
     */
    @RequestMapping("/deleteServiceType")
    public int deleteServiceType(@RequestBody DataServerType dataServerType) {
        return basicDataService.deleteServiceType(dataServerType);
    }
}
